import java.util.Arrays;

public class L541 {

    public static void main(String[] args) {
        String s = "abcd";
        int k = 3;
        String reverseStr = new Solution().reverseStr(s, k);
        System.out.println(reverseStr);
    }

    static class Solution {
        public String reverseStr(String s, int k) {
            char[] ch = s.toCharArray();
            for(int i = 0;i < ch.length;i += 2 * k){
                int start = i;
                // 判断尾数够不够k个来取决end指针的位置
                int end = Math.min(ch.length - 1,start + k - 1);
                while(start < end){

                    char temp = ch[start];
                    ch[start] = ch[end];
                    ch[end] = temp;

                    start++;
                    end--;
                }
            }
            return new String(ch);
        }

//        public String reverseStr(String s, int k) {
//            int i = s.length() / (2 * k);
//            int index = i * 2 * k;
//            char[] chars = s.toCharArray();
//            while (i > 0) {
//                int left = 2 * k * (i - 1);
//                int right = 2 * k * i - k - 1;
//                revers(left, right, chars);
//                i--;
//            }
//            int length = s.length();
//            if (index < length) {
//                int right = length - index > k ? index + k - 1 : length - 1;
//                revers(index, right, chars);
//            }
//            return new String(chars);
//        }
//
//        private void revers(int left, int right, char[] chars) {
//            while (left < right) {
//                char temp = chars[left];
//                chars[left] = chars[right];
//                chars[right] = temp;
//                left++;
//                right--;
//            }
//        }
    }
}
